package com.briup.es.service;

import com.briup.es.domain.bean.Book;
import com.baomidou.mybatisplus.extension.service.IService;
import com.briup.es.domain.dto.BookChangeNumDTO;
import com.briup.es.domain.vo.BookDetailVO;
import com.briup.es.domain.vo.BookVO;

import java.util.List;


public interface BookService extends IService<Book> {
    /**
     * 返回最热门前20本书籍
     * @return 书籍信息
     */
    List<BookVO> showBooksLimit20();

    /**
     * 根据栏目id获取该栏目下的图书信息
     * @param id 栏目id
     * @return 图书信息
     */
    List<BookVO> findByCategoryId(Integer id);

    /**
     * 根据关键字查询图书信息
     * @param query 查询的关键字
     * @return 图书信息
     */
    List<BookVO> searchBook(String query);

    /**
     * 根据id查询图书的详细信息
     * @param id 图书id
     * @return BookDetailVO 图书详细信息
     */
    BookDetailVO queryBookDetailById(Integer id);

    /**
     * 根据图书id及其库存的变化量，批量修改图书的库存
     * @param dtoList 图书id及其库存变化量的数据
     */
    void changeStoreNum(List<BookChangeNumDTO> dtoList);

    BookVO queryById(Integer id);

    List<BookVO> queryByIds(List<Integer> ids);
}
